﻿using System;
using System.Collections.Generic;
using memo;

namespace memoConsoleTest
{
    /// <summary>
    /// A MockDataAccessor osztály metódusait tesztelő osztály.
    /// Egyszerű konzol alkalmazás készítése, bekéri az adatokat konzolról elmenti őket és kiírja.
    /// </summary>
    public class MockDataAccessorTest
    {
        /// <summary>
        ///  - MockDataAccessor létrehozása, inicializálása
        ///  - egy Topic lista létrehozása, feltöltése
        ///  - a létrehozott lista hozzáadása a MockDataAccessor listájához
        ///  - a MockDataAccessor listájának kiíratása
        /// </summary>
        public static void testmethod()
        {
            // - MockDataAccessor létrehozása, inicializálása
            // Környezeti változó beállítása, hogy a DataAccessorFactory biztosan MockDataAccesort adjon vissza
            // Majd MockDataAccessor létrehozása
            Environment.SetEnvironmentVariable("DataAccessorTestMode", "True");
            IDataAccessor myDataAccessor = DataAccessorFactory.Get();
            Console.WriteLine("---------------------------");
            Console.WriteLine("MockDataAccessor tesztelése");
            Console.WriteLine("---------------------------");
            Console.WriteLine("Topic Lista létrehozása:");
            // egy Topic lista létrehozása, feltöltése            
            List<Topic> myTopic = new List<Topic>();
            for (int i = 0; i <= 5; i++)
            {
                myTopic.Add(new Topic("Title" + i, "Short description" + i));
                Console.WriteLine(myTopic[i].ToString());
            }

            Console.WriteLine("Topicok elmentése a MockDataAccessorral...");
            // - a létrehozott lista elmentése MockDataAccessorral
            // - a MockDataAccessor listájának kiíratása
            myDataAccessor.Save(myTopic);
            Console.WriteLine("Topicok betöltése a MockDataAccessorral:");
            List<Topic> myReturnedTopics = myDataAccessor.Load();
            foreach (Topic item in myReturnedTopics)
            {
                Console.WriteLine(item.ToString());
            }
        }
    }
}